/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package infb.forms;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.servlet.http.HttpServletRequest;

import org.apache.struts.action.ActionErrors;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.action.ActionMessage;


public class SetPartesMedicosForm extends org.apache.struts.action.ActionForm {


    private String fechaTramitacion;
    private String fechaFinalizacion;
    private String sintomas;
    private String diagnostico;
    private String tratamiento;
    private String privado;
    private String medico;
    private String paciente;

    public String getDiagnostico() {
        return diagnostico;
    }

    public String getFechaTramitacion() {
        return fechaTramitacion;
    }

    public String getFechaFinalizacion() {
        return fechaFinalizacion;
    }

    public String getMedico() {
        return medico;
    }

    public String getPaciente() {
        return paciente;
    }

    public String getPrivado() {
        return privado;
    }

    public String getSintomas() {
        return sintomas;
    }

    public String getTratamiento() {
        return tratamiento;
    }

    public void setDiagnostico(String diagnostico) {
        this.diagnostico = diagnostico;
    }

    public void setFechaTramitacion(String fechaTramitacion) {
        this.fechaTramitacion = fechaTramitacion;
    }

    public void setFechaFinalizacion(String fechaFinalizacion) {
        this.fechaFinalizacion = fechaFinalizacion;
    }

    public void setMedico(String medico) {
        this.medico = medico;
    }

    public void setPaciente(String paciente) {
        this.paciente = paciente;
    }

    public void setPrivado(String privado) {
        this.privado = privado;
    }

    public void setSintomas(String sintomas) {
        this.sintomas = sintomas;
    }

    public void setTratamiento(String tratamiento) {
        this.tratamiento = tratamiento;
    }


    public SetPartesMedicosForm() {
        super();
     
    }

    /*
     * Metodo privado para comprobar que el mail tiene formato correco
     * (solo comprobamos que tenga formato nombre@servidor.dominio).
     */
    private boolean comprobarFecha(String fechaFinalizacion, String fechaTramitacion) throws ParseException {
        Date fechaFin, fechaIni;
        SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yy");
        fechaIni = sdf.parse(fechaTramitacion);
        fechaFin = sdf.parse(fechaFinalizacion);
        if (!fechaFin.before(fechaIni)){
            return true;
        }else{
            return false;
        }

    }

   @Override
    public ActionErrors validate(ActionMapping mapping, HttpServletRequest request) {
        ActionErrors errores = new ActionErrors();

        if ((this.paciente==null)||(this.paciente.equalsIgnoreCase(""))) {
            errores.add("paciente", new ActionMessage("formularios.set_parte_medico.errores.paciente.vacio"));
        }
        if (this.medico.equalsIgnoreCase("")) {
            errores.add("medico", new ActionMessage("formularios.set_parte_medico.errores.medico.vacio"));
        }
        if ((this.privado==null)||(this.privado.equalsIgnoreCase(""))) {
            errores.add("privado", new ActionMessage("formularios.set_parte_medico.errores.privado.vacio"));
        }
        if ((!(this.fechaFinalizacion==null)&&!(this.fechaFinalizacion.equalsIgnoreCase(""))&&!(this.fechaTramitacion==null)&&!(this.fechaTramitacion.equalsIgnoreCase("")))) {
            try {
                if (!comprobarFecha(this.fechaFinalizacion, this.fechaTramitacion)) {
                    errores.add("fechaFinalizacion", new ActionMessage("formularios.set_parte_medico.errores.fecha_finalizacion.invalida"));
                }
            } catch (ParseException ex) {
                Logger.getLogger(SetPartesMedicosForm.class.getName()).log(Level.SEVERE, null, ex);
            }
        }
        
        return errores;
    }


}
